package com.cmz.common.log;

import com.cmz.common.dto.LoggerDefine;

import java.lang.reflect.Method;
import java.util.Map;

/**
 * @author cmz
 * @date 2020/5/24 19:55
 */
public interface AccessLoggerParser {
    /**
     * 判断方法是否执行AOP
     * @param clazz class类
     * @param method 方法
     * @param <E> 类
     * @return 是否执行AOP
     */
    <E> boolean support(Class<E> clazz, Method method);

    /**
     * 方法产生日志对象
     * @param id 对象ID
     * @param method 方法
     * @param target 对象
     * @param args 参数
     * @return 日志对象
     */
    LoggerDefine parse(String id, Method method, Object target, Map<String, Object> args);
}
